package com.util; 

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import com.dto.HitNumberDto;

/** 
 * 中奖号码服务类
 * 
 * 
 * 文件名 HitNumberUtil.java
 * 创建人 xlz 
 * @version 1.0
 * 创建人及时间 xlz 2011-9-13
 * 修改人：
 * 修改时间：
 * 修改描述：
 * 
 */
public class HitNumberUtil {
	
	public static Map<String ,HitNumberDto> hitNumberMap = new HashMap<String ,HitNumberDto>() ;		//
	public static Map<String ,HitNumberDto> selfHitNumberMap = new HashMap<String ,HitNumberDto>() ;	//
	private Integer countNo = 1 ;
	public static Integer selfHitNumberMax ;
	public static Integer hitNumberMax ;
	
	public HitNumberUtil(){
		getAllHitNumber() ;
	}
	
	/**
	 * 得到所有中奖号码
	 * 
	 */
	public void getAllHitNumber(){
		String filePath = "/ticket.xlsx" ;
		// 创建对Excel工作簿文件的引用
		XSSFWorkbook workbook;
		try {
			workbook = new XSSFWorkbook(new FileInputStream (filePath));
			// 创建对工作表的引用。
			// 本例是按名引用（让我们假定那张表有着缺省名"Sheet1"）
			XSSFSheet sheet = workbook.getSheet("Sheet2");
			String num ;
			hitNumberMax = sheet.getLastRowNum()-1;
			
			for (int i=sheet.getLastRowNum();i>1;i--){
				XSSFRow row = sheet.getRow(i);
				
				HitNumberDto hitNumberDto = new HitNumberDto() ;
				num = getCellValue(row.getCell(0)) ;
//				num = row.getCell(0).toString();
				hitNumberDto.setNumber(num) ;
				hitNumberDto.setSelfNumber(countNo.toString()) ;
				hitNumberDto.setRed1(getCellValue(row.getCell(1))) ;
				hitNumberDto.setRed2(getCellValue(row.getCell(2))) ;
				hitNumberDto.setRed3(getCellValue(row.getCell(3))) ;
				hitNumberDto.setRed4(getCellValue(row.getCell(4))) ;
				hitNumberDto.setRed5(getCellValue(row.getCell(5))) ;
				hitNumberDto.setRed6(getCellValue(row.getCell(6))) ;
				hitNumberDto.setBlue(getCellValue(row.getCell(7))) ;
				hitNumberDto.setOpenDate(row.getCell(15).getDateCellValue().toLocaleString()) ;
				
				hitNumberMap.put(num, hitNumberDto) ;
				selfHitNumberMap.put(countNo.toString(), hitNumberDto) ;
				countNo++ ;
			}
			
			selfHitNumberMax = --countNo ;
			
			// 也可用getSheetAt(int index)按索引引用，
			// 在Excel文档中，第一张工作表的缺省索引是0，
			// 其语句为：HSSFSheet sheet = workbook.getSheetAt(0);
			// 读取左上端单元
			sheet.getLastRowNum() ;
			XSSFRow row = sheet.getRow(2);
			XSSFCell cell = row.getCell((short)0);
			// 输出单元内容，cell.getStringCellValue()就是取所在单元的值
			System.out.println("左上端单元是： " + cell.toString() ); 
			System.out.println("总行数是： " + sheet.getLastRowNum() );
			
		} catch (FileNotFoundException e) {
			System.out.println("中奖号码文件未找到") ;
		} catch (IOException e) {
			System.out.println("读取中奖号码文件出错") ;
		}
		
	}
	
	private String getCellValue(XSSFCell cell){
		
		return Double.toString(cell.getNumericCellValue()).substring(0, Double.toString(cell.getNumericCellValue()).indexOf(".")) ;
//		if (cell.toString()==null || cell.toString().equals("")) return "" ;
//		return cell.toString().substring(0, cell.toString().indexOf(".")) ;
	}
	
	public static void main(String[] args){
		HitNumberUtil h = new HitNumberUtil() ;
//		h.getAllHitNumber() ;
	}
}
 